package cn.dapeng.base;

import cn.dapeng.util.SleepingUtil;

import java.util.concurrent.TimeUnit;

/**
 * 线程“打断”，java中线程是不存在真正打断的逻辑的，也就是线程在执行过程中强制终止运行
 *
 * Thread类中涉及“打断”的方法有三个：
 *  public void interrupt() // t.interrupt() 给线程的“中断”标志位设置成true
 *  public boolean isInterrupted() 检查”中断“标志位当前值
 *  public static boolean interrupted() 查看当前线程是否被打断，如果被打断，恢复中断标志位的值
 */
public class ThreadInterrupt2 {

    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            for (;;) {
                if(Thread.interrupted()) {
                    System.out.println("Thread is interrupted");
                    System.out.println(Thread.interrupted());

                }
            }
        });

        t1.start();
        SleepingUtil.sleep(5, TimeUnit.SECONDS);
        t1.interrupt();
    }
}
